package com.yonyou.cyxdms.basedata.client.dto.product;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeAllDeserializer;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeAllSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 需求计划模板-DTO
 * 表[tt_vs_plan_template]
 *
 * @author lyz
 * @since 2021/04/06
 */
@ApiModel("需求计划模板DTO")
public class TtVsPlanTemplateDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("每页显示条数")
    private Long size = 10L;

    @ApiModelProperty("当前页")
    private Long current = 1L;

    @ApiModelProperty("模板id列表")
    private List<Long> templateIds;

    @ApiModelProperty("车型车系数组")
    private String brandProductList;

    @ApiModelProperty("年度月度")
    private String templateYearAndMonth;

    @ApiModelProperty("模板id")
    private Long id;

    @ApiModelProperty("模板年度")
    private Integer templateYear;

    @ApiModelProperty("模板月度")
    private Integer templateMonth;

    @ApiModelProperty("状态")
    private Integer templateStatus;

    @ApiModelProperty("下发日期")
    @JsonDeserialize(using = JsonLocalDateTimeAllDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeAllSerializer.class)
    private LocalDateTime assignDate;

    @ApiModelProperty("下发人id")
    private Long assignPersonId;

    @ApiModelProperty("下发人姓名")
    private String assignPersonName;

    @ApiModelProperty("车厂公司id")
    private String appId;

    @ApiModelProperty("公司代码")
    private String companyCode;

    @ApiModelProperty("所有者代码")
    private String ownerCode;

    @ApiModelProperty("所有者的父组织代码（用于二网使用）")
    private String ownerParCode;

    @ApiModelProperty("是否移动端")
    private Integer isApp;

    @ApiModelProperty("组织id")
    private String orgId;

    @ApiModelProperty("创建人")
    private String createdBy;

    @ApiModelProperty("创建人名称")
    private String createdByName;

    @ApiModelProperty("创建时间")
    @JsonDeserialize(using = JsonLocalDateTimeAllDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeAllSerializer.class)
    private LocalDateTime createdAt;

    @ApiModelProperty("修改人")
    private String updatedBy;

    @ApiModelProperty("修改人名称")
    private String updatedByName;

    @ApiModelProperty("修改时间")
    @JsonDeserialize(using = JsonLocalDateTimeAllDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeAllSerializer.class)
    private LocalDateTime updatedAt;

    @ApiModelProperty("记录版本号")
    private Integer recordVersion;

    @ApiModelProperty("是否删除")
    private Integer isDeleted;

    @ApiModelProperty("品牌ID")
    private Long brandId;

    @ApiModelProperty("品牌代码")
    private String brandCode;

    @ApiModelProperty("品牌名称")
    private String brandName;

    @ApiModelProperty("车系ID")
    private Long seriesId;

    @ApiModelProperty("车系代码")
    private String seriesCode;

    @ApiModelProperty("车系名称")
    private String seriesName;

    @ApiModelProperty("车型ID")
    private Long modelId;

    @ApiModelProperty("车型代码")
    private String modelCode;

    @ApiModelProperty("车型名称")
    private String modelName;

    @ApiModelProperty("配置ID")
    private Long packageId;

    @ApiModelProperty("配置代码")
    private String configCode;

    @ApiModelProperty("配置名称")
    private String configName;

    @ApiModelProperty("选装代码")
    private Long optionId;

    @ApiModelProperty("选装代码")
    private String optionCode;

    @ApiModelProperty("选装名称")
    private String optionName;

    @ApiModelProperty("内颜色Id")
    private Long trimColorId;

    @ApiModelProperty("内颜色")
    private String trimColor;

    @ApiModelProperty("内颜色名称")
    private String trimColorName;

    @ApiModelProperty("外颜色Id")
    private Long colorId;

    @ApiModelProperty("外颜色")
    private String colorCode;

    @ApiModelProperty("外颜色名称")
    private String colorName;

    @ApiModelProperty("产品Id")
    private Long productId;

    @ApiModelProperty("产品代码")
    private String productCode;

    @ApiModelProperty("N+1月是否可提报")
    private String isAddOne;

    @ApiModelProperty("N+2月是否可提报")
    private String isAddTwo;

    @ApiModelProperty("N+3月是否可提报")
    private String isAddThree;

    @ApiModelProperty("产品描述")
    private String productName;

    @ApiModelProperty("车厂指导价")
    private BigDecimal oemDirectivePrice;

    @ApiModelProperty("结算价格")
    private BigDecimal directivePrice;

    @ApiModelProperty("动力形式 3 油车\\电车,2 油车,1 电车")
    private String powerType;

    @ApiModelProperty("是否是经销商")
    private Integer isDealer;

    @ApiModelProperty("年款")
    private Integer yearModel;

    @ApiModelProperty("公告号")
    private String noticeNo;

    @ApiModelProperty("物料描述")
    private String productDesc;

    public String getProductDesc() {
        return productDesc;
    }

    public void setProductDesc(String productDesc) {
        this.productDesc = productDesc;
    }

    public String getNoticeNo() {
        return noticeNo;
    }

    public void setNoticeNo(String noticeNo) {
        this.noticeNo = noticeNo;
    }

    public Integer getYearModel() {
        return yearModel;
    }

    public void setYearModel(Integer yearModel) {
        this.yearModel = yearModel;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public BigDecimal getDirectivePrice() {
        return directivePrice;
    }

    public void setDirectivePrice(BigDecimal directivePrice) {
        this.directivePrice = directivePrice;
    }

    public Long getSize() {
        return size;
    }

    public void setSize(Long size) {
        this.size = size;
    }

    public Long getCurrent() {
        return current;
    }

    public void setCurrent(Long current) {
        this.current = current;
    }

    public List<Long> getTemplateIds() {
        return templateIds;
    }

    public void setTemplateIds(List<Long> templateIds) {
        this.templateIds = templateIds;
    }

    public String getBrandProductList() {
        return brandProductList;
    }

    public void setBrandProductList(String brandProductList) {
        this.brandProductList = brandProductList;
    }

    public String getTemplateYearAndMonth() {
        return templateYearAndMonth;
    }

    public void setTemplateYearAndMonth(String templateYearAndMonth) {
        this.templateYearAndMonth = templateYearAndMonth;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getTemplateYear() {
        return templateYear;
    }

    public void setTemplateYear(Integer templateYear) {
        this.templateYear = templateYear;
    }

    public Integer getTemplateMonth() {
        return templateMonth;
    }

    public void setTemplateMonth(Integer templateMonth) {
        this.templateMonth = templateMonth;
    }

    public Integer getTemplateStatus() {
        return templateStatus;
    }

    public void setTemplateStatus(Integer templateStatus) {
        this.templateStatus = templateStatus;
    }

    public LocalDateTime getAssignDate() {
        return assignDate;
    }

    public void setAssignDate(LocalDateTime assignDate) {
        this.assignDate = assignDate;
    }

    public Long getAssignPersonId() {
        return assignPersonId;
    }

    public void setAssignPersonId(Long assignPersonId) {
        this.assignPersonId = assignPersonId;
    }

    public String getAssignPersonName() {
        return assignPersonName;
    }

    public void setAssignPersonName(String assignPersonName) {
        this.assignPersonName = assignPersonName;
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getCompanyCode() {
        return companyCode;
    }

    public void setCompanyCode(String companyCode) {
        this.companyCode = companyCode;
    }

    public String getOwnerCode() {
        return ownerCode;
    }

    public void setOwnerCode(String ownerCode) {
        this.ownerCode = ownerCode;
    }

    public String getOwnerParCode() {
        return ownerParCode;
    }

    public void setOwnerParCode(String ownerParCode) {
        this.ownerParCode = ownerParCode;
    }

    public Integer getIsApp() {
        return isApp;
    }

    public void setIsApp(Integer isApp) {
        this.isApp = isApp;
    }

    public String getOrgId() {
        return orgId;
    }

    public void setOrgId(String orgId) {
        this.orgId = orgId;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public String getCreatedByName() {
        return createdByName;
    }

    public void setCreatedByName(String createdByName) {
        this.createdByName = createdByName;
    }

    public LocalDateTime getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }

    public String getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedByName() {
        return updatedByName;
    }

    public void setUpdatedByName(String updatedByName) {
        this.updatedByName = updatedByName;
    }

    public LocalDateTime getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
    }

    public Integer getRecordVersion() {
        return recordVersion;
    }

    public void setRecordVersion(Integer recordVersion) {
        this.recordVersion = recordVersion;
    }

    public Integer getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }

    public Long getBrandId() {
        return brandId;
    }

    public void setBrandId(Long brandId) {
        this.brandId = brandId;
    }

    public String getBrandCode() {
        return brandCode;
    }

    public void setBrandCode(String brandCode) {
        this.brandCode = brandCode;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public Long getSeriesId() {
        return seriesId;
    }

    public void setSeriesId(Long seriesId) {
        this.seriesId = seriesId;
    }

    public String getSeriesCode() {
        return seriesCode;
    }

    public void setSeriesCode(String seriesCode) {
        this.seriesCode = seriesCode;
    }

    public String getSeriesName() {
        return seriesName;
    }

    public void setSeriesName(String seriesName) {
        this.seriesName = seriesName;
    }

    public Long getModelId() {
        return modelId;
    }

    public void setModelId(Long modelId) {
        this.modelId = modelId;
    }

    public String getModelCode() {
        return modelCode;
    }

    public void setModelCode(String modelCode) {
        this.modelCode = modelCode;
    }

    public String getModelName() {
        return modelName;
    }

    public void setModelName(String modelName) {
        this.modelName = modelName;
    }

    public Long getPackageId() {
        return packageId;
    }

    public void setPackageId(Long packageId) {
        this.packageId = packageId;
    }

    public String getConfigCode() {
        return configCode;
    }

    public void setConfigCode(String configCode) {
        this.configCode = configCode;
    }

    public String getConfigName() {
        return configName;
    }

    public void setConfigName(String configName) {
        this.configName = configName;
    }

    public Long getOptionId() {
        return optionId;
    }

    public void setOptionId(Long optionId) {
        this.optionId = optionId;
    }

    public String getOptionCode() {
        return optionCode;
    }

    public void setOptionCode(String optionCode) {
        this.optionCode = optionCode;
    }

    public String getOptionName() {
        return optionName;
    }

    public void setOptionName(String optionName) {
        this.optionName = optionName;
    }

    public Long getTrimColorId() {
        return trimColorId;
    }

    public void setTrimColorId(Long trimColorId) {
        this.trimColorId = trimColorId;
    }

    public String getTrimColor() {
        return trimColor;
    }

    public void setTrimColor(String trimColor) {
        this.trimColor = trimColor;
    }

    public String getTrimColorName() {
        return trimColorName;
    }

    public void setTrimColorName(String trimColorName) {
        this.trimColorName = trimColorName;
    }

    public Long getColorId() {
        return colorId;
    }

    public void setColorId(Long colorId) {
        this.colorId = colorId;
    }

    public String getColorCode() {
        return colorCode;
    }

    public void setColorCode(String colorCode) {
        this.colorCode = colorCode;
    }

    public String getColorName() {
        return colorName;
    }

    public void setColorName(String colorName) {
        this.colorName = colorName;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public String getIsAddOne() {
        return isAddOne;
    }

    public void setIsAddOne(String isAddOne) {
        this.isAddOne = isAddOne;
    }

    public String getIsAddTwo() {
        return isAddTwo;
    }

    public void setIsAddTwo(String isAddTwo) {
        this.isAddTwo = isAddTwo;
    }

    public String getIsAddThree() {
        return isAddThree;
    }

    public void setIsAddThree(String isAddThree) {
        this.isAddThree = isAddThree;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public BigDecimal getOemDirectivePrice() {
        return oemDirectivePrice;
    }

    public void setOemDirectivePrice(BigDecimal oemDirectivePrice) {
        this.oemDirectivePrice = oemDirectivePrice;
    }

    public String getPowerType() {
        return powerType;
    }

    public void setPowerType(String powerType) {
        this.powerType = powerType;
    }

    public Integer getIsDealer() {
        return isDealer;
    }

    public void setIsDealer(Integer isDealer) {
        this.isDealer = isDealer;
    }
}
